1. Field of the Invention
This invention relates to error diffusion in printing, more particularly to enhanced error diffusion for high-speed printing.
2. Background of the Invention
In digital printing, the output to the printing system that forms the necessary dots is binary, either ON or OFF. A comparison of the intended value to a threshold determines whether the output is ON or OFF. For example, consider an 8-bit system with a range of possible values from 0-255. The threshold for ON or OFF is set to 127.5, or at the mid-point. Values above will be turned ON, values below OFF.
However, the value given an ON dot will be 255, and OFF will be 0. Therefore, an error exists between the intended value and the printed value of the dot. For example, if a dot has an intended value of 200, it lies above the threshold and will be turned ON. Its printed value will be 255, so there is an error of 55 between its intended and printed values.
This error is typically handled with error diffusion, originally proposed by Floyd and Steinberg. The error value can be assigned to the neighbor dots, since the dots are so relatively small in the perceived human eye response; the eye will tend to integrate that dot and its neighboring dots into one larger spot of color. Floyd and Steinberg suggested using four yet to be processed pixels that neighbor the pixel with the error value.
The Floyd-Steinberg approach 10 is shown in FIG. 1. The threshold is applied to the input color value, which in this example is 200. The threshold is 128, so that dot is printed. The resulting difference between the intended value of 200 and the printed value is 55. It will be diffused to the neighbors with the weights of 7 5 3 1, in the positions shown at 14. The sum of the weights is 16, so the error value ed=55/16=3.44. The following table demonstrates the result of error diffusion on the neighboring pixels. The original value for all pixels is 144.
It must be understood that the error values computed for each pixel are only those from the previous pixel. Other error values exist for the pixels from other neighboring pixels. For example, if X in the below diagram is the pixel with value 200 from the example, Y is the neighboring pixel. The pixel that has the 5 weight from X is the pixel that has the 3 weight from Y. The error diffusion for X is in parentheses (), the error diffusion for Y in the brackets [].
As mentioned above, the flowchart for this process is shown in FIG. 1. When this process is applied to color printing, it results in objectionable artifacts. One such artifact occurs in highlight areas. Dots of color group together in a wormlike form. These worms detract from the image quality. Other problems occur in low-density regions, where the low-density regions seem to trail off or xe2x80x98meltxe2x80x99 at the edges.
Several adjustments to the Floyd-Steinberg process have been suggested. Some adjust the weighting and position of the neighbors to which the error is diffused, as in U.S. Pat. No. 5,737,453, issued in 1998 to Ostromoukov. Others apply noise masks or other types of error filters to the thresholding value. Examples of these can be found in U.S. Pat. No. 5,611,022, issued in 1997 to Estrada, et al., and U.S. Pat. No. 5,757,976, issued 1998 to Shu. Several other examples of enhancements can be found.
All of these techniques generally provide enhancements to the error diffusion process, resulting in higher quality images than using just the Floyd-Steinberg error diffusion. However, these techniques add to the processing time necessary for each pixel of the image, slowing down the print process. Therefore, a method of enhancing the error diffusion process while balancing the need to minimize processing time is needed.
One aspect of the invention is a method for enhanced error diffusion for digital printing. The method includes the steps of selecting values for peak positions and placing those values in a matrix to be applied to the error threshold. The input image value is compared to a profiled threshold. The profiled threshold is the error threshold adjusted by the peak position value. The peak position values are determined to make it more likely that a dot will exceed the error threshold, resulting in the dot being turned on. This discharges any accumulated density in that area, avoiding artifacts such as worms and edge melting.
Another aspect of the invention is an automated process for placing the peak position values in the matrix. This process includes the steps of segmenting the matrix into squares, randomly offsetting the values from the center of the square and then using the offset positions of the values to seed the position for the next level of values.